import OSS from 'ali-oss'
import { oos } from "@/api/sharing"
// #todo 应该可以加上时间戳
function newFileName(length) { // 生成随机文件名
    const data = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",
        "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y",
        "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
        "s", "t", "u", "v", "w", "x", "y", "z"
    ];
    let names = "";
    for (let i = 0; i < length; i++) {
        const r = parseInt(Math.random() * 61, 10);
        names += data[r];
    }
    let getTime = new Date().getTime()
    names += getTime
    console.log(names);
    return names;
}

export async function oosUpload(file, dir) {
    return new Promise((resolve, reject) => {
        oos().then(({ data }) => {
            const client = new OSS({
                region: data.region,
                accessKeyId: data.Credentials.AccessKeyId,
                accessKeySecret: data.Credentials.AccessKeySecret,
                stsToken: data.Credentials.SecurityToken,
                bucket: data.bucket
            })
            const type = file.name.split('.')[file.name.split('.').length - 1]
            const fileName = '/' + dir + '/' + newFileName(32) + '.' + type
            client.put(fileName, file).then(({ res }) => {
                if (res.status === 200) {
                    resolve({ url: fileName, file })
                } else {
                    reject()
                }
            }).catch((err) => {
                reject()
            });
        })
    })
}
